因為程式碼關於區域(房間)的部份很少,以致沒有實際的遊戲內容可以觀摩。後來研究的方向就轉向整個遊戲機制的部份。畢竟整個遊戲能夠研究的面向還是很多,最後還是考驗巫師們的想像力。
一開始就很單純按照文件目錄順序一個一個資料夾看,順便把空資料夾從文件上刪掉,以下是整理過的目錄。
*** RWlib 之目錄結構
/
│
│
├─city			城市區域(完全由 CITY_D 自己在此建立目錄結構)
│  └─fallencity1
│      └─0
│
├─cmds			系統指令目錄
│  └─std			一般指令
│      ├─adm
│      ├─adv
│      ├─arch
│      ├─guest
│      ├─npc
│      ├─ppl
│      └─wiz
│
├─combat			戰鬥系統相關
│  └─handler
├─data			資料儲存
│  ├─emotion			表情資料
│  ├─finger			IP 位置對應資料
│  ├─network			網路資料
│  ├─object			其他物件資料
│  └─user			玩家資料
│
├─doc				文件
│  ├─chat			聊天紀錄文件
│  ├─driver			MudOS 修改文件
│  │  ├─modify
│  │  │  ├─detail_document
│  │  │  └─source_files
│  │  │      └─packages
│  │  └─perl
│  ├─help			遊戲說明文件
│  ├─rwlib			Revival World Mudlib 文件
│  └─v22doc			MudOS v22doc
│
├─include			標頭檔
│  └─backup
│
├─log
│  └─system
│
├─obj				各種基本系統物件
│  ├─board
│  ├─etc
│  ├─farming
│  ├─fish
│  ├─materials
│  ├─npc
│  └─room
├─std				
│  └─inherit
│     ├─feature		特徵繼承
│     │  ├─command		指令繼承
│     │  ├─living		生物繼承
│     │  │  ├─npc		├─NPC繼承
│     │  │  └─usr		└─使用者繼承
│     │  │      ├─ppl	    └─玩家繼承
│     │  │      └─wiz 	    └─巫師繼承
│     │  ├─module		模組繼承
│     │  │  ├─condition    ├─狀態加持
│     │  │  ├─object	├─產品模組繼承
│     │  │  ├─room	        ├─建築物模組繼承
│     │  │  └─skill	└─技能模組繼承
│     │  ├─object		一般物件繼承
│     │  └─room		一般房間繼承
│     └─standard		標準繼承
├─system			系統
│  ├─daemons			精靈
│  │  └─etc			└─精靈資料檔
│  ├─kernel			核心
│  │  ├─data		├─重要資料儲存
│  │  ├─etc			├─
│  │  ├─master		├─MASTER
│  │  └─simul_efun		└─SIMULEFUN
│  ├─object			使用者物件
│  └─tmp
│
├─wiz				巫師
│  ├─home			巫師個人目錄
│  └─wizhall			巫師神殿
└─zone                        區域
主要遊戲實作內容:obj, std, system
遊戲運行後產生內容:data, log, zone
開發區:city, wiz
然後這三個標頭檔被引用的頻率非常高
簡單列一下整理
inherit 互動 玩家互動 巫師互動
飲食 飲水 裝備 重裝甲 遠程武器 短程武器 技能
城市居民 城市生產 城市區域
標準NPC 標準物件 標準房間
daemon
登入 登出 時間 天氣
活物特徵:基本屬性 戰鬥 狀態 延遲(CD) 裝備 生命狀態 背包 貨幣 移動 任務 技能
STANDARD_OBJECT 標準物件特徵:DATABASE CLEAN_UP MOVE IDNAME ACTION KEEP
通常是遊戲內存在的物品,能夠轉移擁有對象
其實還蠻多值得下去研究的東西,一下子可能沒辦法全看完。
大概羅列一些我覺得有興趣的部份,有機會補完
遊戲內復刻了台灣十六張麻將,充分展現MUD的高度自由性
ref: obj\etc\mj\mj.c
資料庫底層運作
action 互動指令的運作機制,開發方法
NPC運作機制
城市經營要素、經濟系統模擬
戰鬥要素,本遊戲較不注重戰鬥,可參考其他MUDlib
房間/都市/區域/迷宮/世界,不同層級的區域研究
天氣系統
LCP VM的運作機制
一些腦洞:
不得不說,MUD的創造能力不會輸給麥塊,看到不錯的實作都蠻佩服的
明天研究MUD的底層連線機制,看有沒有其他能跟MUD配合的web協定或技術?
ex: CGI, websocket, socket.IO